package com.ikun.aimian.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ikun.aimian.model.dto.interview.InterviewPostQueryRequest;
import com.ikun.aimian.model.entity.InterviewPost;
import com.ikun.aimian.model.vo.InterviewPostVO;

import javax.servlet.http.HttpServletRequest;

public interface InterviewPostService extends IService<InterviewPost> {

    /**
     * 校验帖子数据
     * @param post 帖子实体
     * @param add 是否为新增
     */
    void validPost(InterviewPost post, boolean add);

    /**
     * 根据 InterviewPostQueryRequest 构造查询条件
     * @param queryRequest 查询请求
     * @return QueryWrapper
     */
    QueryWrapper<InterviewPost> getQueryWrapper(InterviewPostQueryRequest queryRequest);

    /**
     * 将 InterviewPost 转换为 InterviewPostVO（包含发帖人信息）
     * @param post 帖子实体
     * @param request HTTP 请求
     * @return InterviewPostVO
     */
    InterviewPostVO getPostVO(InterviewPost post, HttpServletRequest request);

    /**
     * 分页获取帖子封装列表
     * @param postPage 帖子分页对象
     * @param request HTTP 请求
     * @return 分页后的 InterviewPostVO 对象
     */
    Page<InterviewPostVO> getPostVOPage(Page<InterviewPost> postPage, HttpServletRequest request);
}
